A database may be a traditional relational database (RDB), or may be any of other types such as a key-value store (KVS) etc. Both of the RDB and KVS are compatible with distribution to a plurality of nodes. For example, Oracle RAC (Oracle real application cluster) etc. are known as examples of a distributed RDB, and Dynamo, Cassandra, etc. are known as examples of a distributed KVS.
In addition, there are various types of distributed database systems. For example, some distributed database systems use a distributed hash table (DHT). The DHT is a technique also used in a peer-to-peer (P2P) data delivery system, and various studies have been made on the DHT.
For example, the following distributed data management system is proposed to equally distribute the loads to nodes in a DHT data management mechanism shared among many users.
In the distributed data management system, a management unit sets up virtual nodes, and allocates the process of accessing data stored in the data management system to each virtual node. Furthermore, a mapping unit associates the virtual node with a node in the data management system. It is possible to adjust the load of each node by adjusting the number of virtual nodes, and adjusting the mapping between a virtual node and a node.
Although the distributed database system and the network-attached storage (NAS) are different techniques, they are similar in that pieces of data are stored in nodes which are connected over a network. Furthermore, a system including a plurality of nodes such as a distributed database system, NAS, etc. may be configured redundantly in preparation for a failure in any node. One of the themes of the study on a redundant system is a failover function.
For example, relating to the NAS, the following computer system is proposed to realize the optimum failover.
The computer system includes first through third computers and a storage device connected to a plurality of computers including the first through third computers over a network. When receiving, from a client computer connected to the plurality of computers, a request for access to the storage device, the first computer executes the requested access, and transmits a response to the access request to the client computer. The second computer judges whether or not a failure has occurred in the first computer, acquires the load information about the second computer, and acquires, from the third computer, the load information about the third computer. When the acquired load information fulfills a prescribed condition, the second computer transmits a change request to the third computer. When the third computer receives the change request from the second computer, the third computer judges whether or not a failure has occurred in the first computer.
Some documents such as those in the following list are known.    Japanese Laid-open Patent Publication No. 2009-295127    Japanese Laid-open Patent Publication No. 2009-25965    Guiseppe DeCandia, Deniz Hastorun, Madan Jampani, Gunavardhan Kakulapati, Avinash Lakshman, Alex Pilchin, Swaminathan Sivasubramanian, Peter Vosshall and Werner Vogels, “Dynamo: Amazon's Highly Available Key-value Store”, SOSP (Symposium on Operating Systems Principles) 2007 (also published at www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf and retrieved on Jul. 28, 2011)    “The Apache Cassandra Project” (published at cassandra.apache.org and retrieved on Jul. 28, 2011)    Kazuyuki Shudo, “Scale-Out Technology” in “Cloud Technology” edited by Fujio Maruyama and Kazuyuki Shudo, published by ASCII Media Works, Nov. 6, 2009, pp. 88-101, (also published at www.shudo.net/articlae/UNIX-magazine-200904-scaleout/and retrieved on Jul. 28, 2011)    Kazuyuki Shudo, “Scale-Out Technology”, UNIX magazine, published by ASCII Media Works, April issue in 2009, pp. 78-91 (also published at www.shudo.net/article/UNIX-magazine-200904-scaleout/and retrieved on Jul. 28, 2011)